package com.zcsy.manage.service.content;

import java.util.List;
import java.util.Map;

import com.zcsy.commons.model.RequestJson;
import com.zcsy.manage.model.content.EmailSend;
import com.zcsy.manage.model.content.SmsInfo;



/**
 * @Title: IMessageService.java
 * @Package： com.zcsy.service.assist.impl
 * @Description: 辅助功能短信邮件接口类 〈功能详细描述〉
 * @author wangziliang
 * @Copyright: 2015 武汉中财数元信息技术有限公司 All rights reserved.
 * @date 2015年6月18日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface IMessageService {

    /**
     * @Title: updateEntitie
     * @Description: 根据短信回执状态更新数据库中短信状态
     * @param SmsInfo
     *            短信对象
     * @return
     * @throws
     */
    void updateEntitie(SmsInfo smsinfo);



    /**
     * @Title: getMessageId
     * @Description: 获取最新发送的短信id，根据ID可以更新发送状态
     * @param
     * @return Map<String, Object> String:id,object:id值
     * @throws
     */
    Map<String, Object> getMessageId();



    /**
     * @Title: insertEntitie
     * @Description: 插入发送短信对象
     * @param SmsInfo
     *            短信对象
     * @return
     * @throws
     */

    RequestJson insertEntitie(SmsInfo smsinfo);
    /**
     * @Title: insertMessage
     * @Description: 插入发送短信对象
     * @param SmsInfo
     *            短信对象
     * @return
     * @throws
     */
    
    RequestJson insertMessage(SmsInfo smsinfo);
    
    int insertMail(EmailSend email);

    /**
     * @Title: getSendMessages
     * @Description: 根据查询条件查所有发送的短信
     * @param SmsInfo
     *            短信对象
     * @return List<SmsInfo> 所有短信的集合
     * @throws
     */
    List<SmsInfo> getSendMessages(SmsInfo record);
    
    List<EmailSend> getSendMails(EmailSend record);



    /**
     * @Title: getMessageInfoByPrimaryKey
     * @Description: 根据查询ID 获取短信详情
     * @param ID
     *            短信id
     * @return SmsInfo 短信类
     * @throws
     */
    SmsInfo getMessageInfoByPrimaryKey(Integer id);
    
    EmailSend getMailInfoByPrimaryKey(Integer id);



    /**
     * 根据ID 删除短信
     * 
     * @Title: deleteMessage
     * @Description: TODO
     * @param ID
     *            短信ID
     * @return
     * @throws
     */
    void deleteMessage(int id);
    
    void deleteMail(int id);


    /**
     * 获取所有模板
     * 
     * @Title: getAllTem
     * @Description: TODO
     * @param SmsTemplate
     *            短信模板对象
     * @return List<SmsTemplate>
     * @throws
     */
    List<Map<String,Object>> getAllTem();


    /**
	 * 获取待发送的短信记录
	 * limit 最多多少条
	 * @author wangzil
	 * @return
	 */
	public List<SmsInfo> getWaitMtSms(int limit);
	 /**
		 * 获取待发送的短信记录
		 * limit 最多多少条
		 * @author wangzil
		 * @return
	*/
	public int getOpenOrNot();
	
	/**
	 * 更新短信发送状态开关
	 * 
	 * @author wangzil
	 * @return
	 */
	public void openMsg(String status);
	/**
	 * 根据部门获取所有用户
	 * 
	 * @author wangzil
	 * @return
	 */
	List<Map<String, Object>> getAllUserByOrg();
}
